<?php
class empresa{
	private $id;
	private $id_tipo;
        private $tipo;
	private $nome;
	private $cnpj;
	private $logo;
	private $identificacao;
	private $senha;
	private $telefone1;
	private $telefone2;
	private $email1;
	private $email2;
	private $website;
	private $facebook;
	private $twitter;
	private $youtube;
	private $id_cidade;
        private $estado;
        private $cidade;
	private $logradouro;
	private $numero;
	private $complemento;
	private $bairro;
	private $CEP;
	private $latitude;
        private $longitude;
	private $dt_cadastro;

	public function __construct(){
		$this->id = NULL;
		$this->id_tipo = NULL;
                $this->tipo = NULL;
		$this->nome = NULL;
		$this->cnpj = NULL;
		$this->logo = "perfil.png";
		$this->identificacao = NULL;
		$this->senha = NULL;
		$this->telefone1 = NULL;
		$this->telefone2 = NULL;
		$this->email1 = NULL;
		$this->email2 = NULL;
		$this->website = "http://";
		$this->facebook = "http://facebook.com/";
		$this->twitter = "http://twitter.com/";
		$this->youtube = "http://youtube.com/";
		$this->id_cidade = NULL;
                $this->estado = NULL;
                $this->cidade = NULL;
		$this->logradouro = NULL;
		$this->numero = NULL;
		$this->complemento = NULL;
		$this->bairro = NULL;
		$this->CEP = NULL;
		$this->latitude = NULL;
                $this->longitude = NULL;
		$this->dt_cadastro = NULL;
	}

	public function get_id(){
		return $this->id;
	}
	public function get_id_tipo(){
		return $this->id_tipo;
	}
        public function get_tipo(){
		return $this->tipo;
	}
	public function get_nome(){
		return $this->nome;
	}
	public function get_cnpj(){
		return $this->cnpj;
	}
	public function get_logo(){
                return $this->logo;
	}
	public function get_identificacao(){
		return $this->identificacao;
	}
	public function get_senha(){
		return $this->senha;
	}
	public function get_telefone1(){
		return $this->telefone1;
	}
	public function get_telefone2(){
		return $this->telefone2;
	}
	public function get_email1(){
		return $this->email1;
	}
	public function get_email2(){
		return $this->email2;
	}
	public function get_website(){
		return $this->website;
	}
	public function get_facebook(){
		return $this->facebook;
	}
	public function get_twitter(){
		return $this->twitter;
	}
	public function get_youtube(){
		return $this->youtube;
	}
	public function get_id_cidade(){
		return $this->id_cidade;
	}
        public function get_estado(){
		return $this->estado;
	}
        public function get_cidade(){
		return utf8_encode($this->cidade);
	}
	public function get_logradouro(){
		return $this->logradouro;
	}
	public function get_numero(){
		return $this->numero;
	}
	public function get_complemento(){
		return $this->complemento;
	}
	public function get_bairro(){
		return $this->bairro;
	}
	public function get_CEP(){
		return $this->CEP;
	}
	public function get_latitude(){
		return $this->latitude;
	}
        public function get_longitude(){
		return $this->longitude;
	}
	public function get_dt_cadastro(){
		return $this->dt_cadastro;
	}
        public function endereco(){
            $endereco = $this->logradouro;
            if($this->numero){ $endereco .= ", ".$this->numero; }
            if($this->complemento){ $endereco .= ", ".$this->complemento; }
            if($this->bairro){ $endereco .= " - ".$this->bairro; }
            $endereco .= " - ".$this->cidade." - ".$this->estado;
            
            return utf8_encode($endereco);
        }
        public function redes_sociais(){
            if($this->facebook){
                echo "\n<a href='".$this->facebook."' title='Facebook' target='_blank'><img src='imagens/facebook.png' alt='Facebook' class='rss'></a>";
            }
            if($this->twitter){
                echo "\n<a href='".$this->twitter."' title='Twitter' target='_blank'><img src='imagens/twitter.png'  alt='Twitter' class='rss'></a>";
            }
            if($this->youtube){
                echo "\n<a href='".$this->youtube."' title='YouTube' target='_blank'><img src='imagens/youtube.png'  alt='YouTube' class='rss'></a>";
            }
            
            
            if(!$this->facebook && !$this->twitter && !$this->youtube){
                echo "\n<p>Nenhuma rede social</p>";
            }
        }
	
	
	public function set_id($id){
		if(valida::numero($id)){
                    $this->id = $id;
                    return 1;
		}else{
                    return 0;
                }
        }

	public function set_id_tipo($id_tipo){
		if(valida::numero($id_tipo)){
                    $this->id_tipo = $id_tipo;
                    return 1;
		}else{
                    return 0;
                }
        }

	public function set_nome($nome){
                $nome = addslashes($nome);
		if($nome != ''){
                    $this->nome = $nome;
                    return 1;
		}else{
                    return 0;
                }
        }

	public function set_cnpj($cnpj){
		if(valida::cnpj($cnpj)){
                    $this->cnpj = $cnpj;
                    return 1;
		}else{
                    return 0;
                }
        }

	public function set_logo($logo){
                $logo = addslashes($logo);
                $this->logo = $logo;
                return 1;
        }

	public function set_identificacao($identificacao){
		if(valida::nome($identificacao)){
                    $this->identificacao = $identificacao;
                    return 1;
		}else{
                    return 0;
                }
        }

	public function set_senha($senha){
		if($senha != ''){
                    $senha = md5($senha);
                    $this->senha = $senha;
                    return 1;
		}else{
                    return 0;
                }
        }

	public function set_telefone1($telefone1){
		if(valida::telefone($telefone1)){
                    $this->telefone1 = $telefone1;
                    return 1;
		}else{
                    return 0;
                }
        }

	public function set_telefone2($telefone2){
		if($telefone2 == '' || valida::telefone($telefone2)){
                    $this->telefone2 = $telefone2;
                    return 1;
		}else{
                    return 0;
                }
        }

	public function set_email1($email1){
		if(valida::email($email1)){
                    $this->email1 = $email1;
                    return 1;
		}else{
                    return 0;
                }
        }

	public function set_email2($email2){
		if($email2 == '' || valida::email($email2)){
                    $this->email2 = $email2;
                    return 1;
		}else{
                    return 0;
                }
        }

	public function set_website($website){
                if($website != "http://"){
                    $website = addslashes($website);
                    $this->website = $website;
                }else{
                    $this->website = NULL;
                }
                return 1;
        }

	public function set_facebook($facebook){
                if($facebook != "http://facebook.com/"){
                    $facebook = addslashes($facebook);
                    $this->facebook = $facebook;
                }else{
                    $this->facebook = NULL;
                }
                return 1;
        }

	public function set_twitter($twitter){
                if($twitter != "http://twitter.com/"){
                    $twitter = addslashes($twitter);
                    $this->twitter = $twitter;
                }else{
                    $this->twitter = NULL;
                }
                return 1;
        }

	public function set_youtube($youtube){
                if($youtube != "http://youtube.com/"){
                    $youtube = addslashes($youtube);
                    $this->youtube = $youtube;
                }
                return 1;
        }

	public function set_id_cidade($id_cidade){
		if(valida::numero($id_cidade)){
                    $this->id_cidade = $id_cidade;
                    return 1;
		}else{
                    return 0;
                }
        }
        
        public function set_estado($estado){
                $estado = addslashes($estado);
                $this->estado = $estado;
                return 1;
	}
        
        public function set_cidade($cidade){
                $cidade = addslashes($cidade);
		$this->cidade = $cidade;
                return 1;
	}

	public function set_logradouro($logradouro){
		if(valida::endereco($logradouro)){
                    $this->logradouro = $logradouro;
                    return 1;
		}else{
                    return 0;
                }
        }

	public function set_numero($numero){
		if($numero == '' || valida::numero($numero)){
                    $this->numero = $numero;
                    return 1;
		}else{
                    return 0;
                }
        }

	public function set_complemento($complemento){
                $complemento = addslashes($complemento);
                $this->complemento = $complemento;
                return 1;
        }

	public function set_bairro($bairro){
                $bairro = addslashes($bairro);
                $this->bairro = $bairro;
                return 1;
        }

	public function set_CEP($CEP){
		if(valida::cep($CEP)){
                    $this->CEP = $CEP;
                    return 1;
		}else{
                    return 0;
                }
        }
        
        public function set_latitude($latitude){
            if(valida::float($latitude)){
                $this->latitude = $latitude;
                return 1;
            }else{
                return 0;
            }
	}
        
        public function set_longitude($longitude){
            if(valida::float($longitude)){
                $this->longitude = $longitude;
                return 1;
            }else{
                return 0;
            }
	}

	public function set_dt_cadastro($dt_cadastro){
		if(valida::data_hora($dt_cadastro)){
                    $this->dt_cadastro = $dt_cadastro;
                    return 1;
		}else{
                    return 0;
                }
        }
        
        public function checa_senha($senha){
            $senha = md5($senha);
            $sql = "SELECT count(*) FROM empresa WHERE id = '".$_SESSION["agenda_id"]."' AND senha = '$senha'";
            $db = new db(config::$driver);
            $con = $db->conecta();
            $res = $db->query($sql, $con);
            $snh = $db->fetch_array($res);
            
            return $snh[0];
        }
        
        public function checa_identificacao($id){
            if(!$id){
                $id = $this->id;
            }
            
            if(valida::nome($id)){
                $sql = "SELECT count(*) FROM empresa WHERE identificacao = '$id'";
                $db = new db(config::$driver);
                $con = $db->conecta();
                $res = $db->query($sql, $con);
                $ide = $db->fetch_array($res);

                return $ide[0];
            }else{
                return 0;
            }
        }
        
        public function checa_CNPJ($cnpj){
            if(!$cnpj){
                $cnpj = $this->cnpj;
            }
            
            if(valida::cnpj($cnpj)){
                $sql = "SELECT count(*) FROM empresa WHERE cnpj = '$cnpj'";
                $db = new db(config::$driver);
                $con = $db->conecta();
                $res = $db->query($sql, $con);
                $cnp = $db->fetch_array($res);

                return $cnp[0];
            }else{
                return 0;
            }
        }
        
        
        
        


        public function salvar(){
                $db = new db(config::$driver);
                $con = $db->conecta();
                
                // atualiza cidade
                $sql_cid = "SELECT id FROM cidade WHERE nome = '".utf8_decode($this->cidade)."' AND UF = '".$this->estado."'";
                $res_cid = $db->query($sql_cid, $con);
                $cid = $db->fetch_array($res_cid);

                $this->id_cidade = $cid[0];
                
                if($this->id){
                    $sql = "UPDATE empresa SET id_tipo = '".$this->id_tipo."', nome = '".$this->nome."', cnpj = '".$this->cnpj."', logo = '".$this->logo."', identificacao = '".$this->identificacao."', senha = '".$this->senha."', telefone1 = '".$this->telefone1."', telefone2 = '".$this->telefone2."', email1 = '".$this->email1."', email2 = '".$this->email2."', website = '".$this->website."', facebook = '".$this->facebook."', twitter = '".$this->twitter."', youtube = '".$this->youtube."', id_cidade = '".$this->id_cidade."', logradouro = '".$this->logradouro."', numero = '".$this->numero."', complemento = '".$this->complemento."', bairro = '".$this->bairro."', CEP = '".$this->CEP."', latitude = '".$this->latitude."', longitude = '".$this->longitude."', dt_cadastro = '".$this->dt_cadastro."' WHERE id = '$this->id'";
                }else{
                    $sql = "INSERT INTO empresa(id, id_tipo, nome, cnpj, logo, identificacao, senha, telefone1, telefone2, email1, email2, website, facebook, twitter, youtube, id_cidade, logradouro, numero, complemento, bairro, CEP, latitude, longitude, dt_cadastro) "
                         . "VALUES('".$this->id."', '".$this->id_tipo."', '".$this->nome."', '".$this->cnpj."', '".$this->logo."', '".$this->identificacao."', '".$this->senha."', '".$this->telefone1."', '".$this->telefone2."', '".$this->email1."', '".$this->email2."', '".$this->website."', '".$this->facebook."', '".$this->twitter."', '".$this->youtube."', '".$this->id_cidade."', '".$this->logradouro."', '".$this->numero."', '".$this->complemento."', '".$this->bairro."', '".$this->CEP."', '".$this->latitude."', '".$this->longitude."', '".$this->dt_cadastro."')";
                }
                
		$res = $db->query($sql, $con);
		$db->close($con);

		return $res;
	}
        
        public function carregar_identificacao($login){
            $login = addslashes($login);
            $sql = "e.identificacao = '$login'";
            
            return $this->carregar($sql);
        }
        
        public function carregar_id($id){
            if(valida::numero($id)){
                $sql = "e.id = '$id'";
                return $this->carregar($sql);
            }else{
                return 0;
            }
        }
        
	private function carregar($sql_carregar){
		$sql = "SELECT e.*, c.uf, c.nome AS cidade, t.nome AS tipo FROM empresa e, cidade c, tipo_emp t WHERE e.id_cidade = c.id AND e.id_tipo = t.id AND $sql_carregar";
                
		$db = new db(config::$driver);
 		$con = $db->conecta();
		$res = $db->query($sql, $con);
		$db->close($con);

		$empresa = $db->fetch_array($res);

		$this->id = $empresa["id"];
		$this->id_tipo = $empresa["id_tipo"];
                $this->tipo = $empresa["tipo"];
		$this->nome = $empresa["nome"];
		$this->cnpj = $empresa["cnpj"];
		$this->logo = $empresa["logo"];
		$this->identificacao = $empresa["identificacao"];
		$this->senha = $empresa["senha"];
		$this->telefone1 = $empresa["telefone1"];
		$this->telefone2 = $empresa["telefone2"];
		$this->email1 = $empresa["email1"];
		$this->email2 = $empresa["email2"];
		$this->website = $empresa["website"];
		$this->facebook = $empresa["facebook"];
		$this->twitter = $empresa["twitter"];
		$this->youtube = $empresa["youtube"];
		$this->id_cidade = $empresa["id_cidade"];
		$this->logradouro = $empresa["logradouro"];
		$this->numero = $empresa["numero"];
		$this->complemento = $empresa["complemento"];
		$this->bairro = $empresa["bairro"];
		$this->CEP = $empresa["CEP"];
                $this->estado = $empresa["uf"];
                $this->cidade = $empresa["cidade"];
		$this->latitude = $empresa["latitude"];
                $this->longitude = $empresa["longitude"];
		$this->dt_cadastro = $empresa["dt_cadastro"];
		
		return 1;
	}
}